#include "mycoin.h"
#include<QDebug>

MyCoin::MyCoin(QString btnImg)
{ 
        QPixmap pixmap;
        bool ret = pixmap.load(btnImg);
        if(!ret)
        {
            qDebug() << btnImg << "加载图片失败!";
        }

        this->setFixedSize( pixmap.width(), pixmap.height() );
        this->setStyleSheet("QPushButton{border:0px;}");
        this->setIcon(pixmap);
        this->setIconSize(QSize(pixmap.width(),pixmap.height()));

        //初始化定时器
        timer1 = new QTimer(this);
        timer2 = new QTimer(this);

        //监听正面翻转的信号槽
        connect(timer1,&QTimer::timeout,[=](){
            QPixmap pixmap;
            QString str = QString(":/res/Coin000%1.png").arg(this->min++);
            pixmap.load(str);
            this->setFixedSize(pixmap.width(),pixmap.height() );
            this->setStyleSheet("QPushButton{border:0px;}");
            this->setIcon(pixmap);
            this->setIconSize(QSize(pixmap.width(),pixmap.height()));
            if(this->min > this->max) //如果大于最大值，重置最小值，并停止定时器
            {
                this->min = 1;
                timer1->stop();
                this->isAnimation  = false;
            }
        });

        connect(timer2,&QTimer::timeout,[=](){
            QPixmap pixmap;
            QString str = QString(":/res/Coin000%1.png").arg((this->max)-- );
            pixmap.load(str);
            this->setFixedSize(pixmap.width(),pixmap.height() );
            this->setStyleSheet("QPushButton{border:0px;}");
            this->setIcon(pixmap);
            this->setIconSize(QSize(pixmap.width(),pixmap.height()));
            if(this->max < this->min) //如果小于最小值，重置最大值，并停止定时器
            {
                this->max = 8;
                timer2->stop();
                this->isAnimation  = false;
            }
        });
}

void MyCoin::changeFlag(){
    if(this->flag) //如果是正面，执行下列代码
    {
        timer1->start(30);
        this->flag = false;
        this->isAnimation  = true;
    }
    else //反面执行下列代码
    {
        timer2->start(30);
        this->flag = true;
        this->isAnimation  = true;
    }
}

void MyCoin::mousePressEvent(QMouseEvent *e)
{
    if(this->isAnimation||isWin == true)
    {
        return;
    }
    else
    {
        return QPushButton::mousePressEvent(e);
    }
}
